//int Binary_search(int array[], int l, int r, int x)
//{
//    if (l > r)
//        return -1;
//    int mid = (l + r) / 2;
//    if (array[mid] == x) return mid;
//    if (array[mid] < x)
//        return Binary_search(array, mid + 1, r, x);
//    if (array[mid] > x)
//    {
//        return Binary_search(array, l, mid - 1, x);
//    }
//    return -1;
//
//}
//void swap(int* a, int* b)
//{
//    int t = *a;
//    *a = *b;
//    *b = t;
//}
//void Quick_sort(int array[], int l, int r)
//{
//    if (l >= r)
//        return;
//    int keyi = l;
//    int begin = l;
//    int end = r;
//    while (l < r)
//    {
//        while (l < r && array[r] >= array[keyi])r--;
//        while (l < r && array[l] <= array[keyi])l++;
//
//        swap(&array[l], &array[r]);
//    }
//    swap(&array[l], &array[keyi]);
//    keyi = l;
//    Quick_sort(array, begin, keyi - 1);
//    Quick_sort(array, keyi + 1, end);
//}
int Binary_search(int array[], int l, int r, int x)
{
    if (l > r)
        return -1;
    int mid = (l + r) / 2;
    if (array[mid] == x) return mid;
    if (array[mid] < x)
        return Binary_search(array, mid + 1, r, x);
    if (array[mid] > x)
    {
        return Binary_search(array, l, mid - 1, x);
    }
    return -1;

}